//java中两个相同名字的函数,参数不同这时就有函数重载
//ts中实现java或者c#面向对象一样编程的写法
//为了兼容es5 es6和java中有区别

/**
 * function css(config) {}
   function css(config, value) {}
 *  */
//以上在es5中 下面方法下面的会替换上面的

function getinfo(name: string): string;
function getinfo(age: number): string;

function getinfo(str: any): any {
  if (typeof str === "string") {
    return "我叫string" + str;
  } else {
    return "我的年龄是:" + str;
  }
}
// alert(getinfo("zs"));
// alert(getinfo(29));
// alert(getinfo(true)); //错误写法
function getPersonInfo(name: string): string;
function getPersonInfo(name: string, age: number): string;
function getPersonInfo(name: string, age?: number): string {
  if (age) {
    return `我叫${name},年龄是${age}`;
  } else {
    return `我叫${name}`;
  }
}
alert(getPersonInfo("wxs", 23));
